// 封装函数 V3.0.0
function animate(dom, prop, value, callback) {
    // 清除定时器 (防抖思想)
    clearInterval(dom.timer);
    // 执行定时器
    dom.timer = setInterval(function () {
        // 记录目标属性值
        var target = parseInt(value);
        // 获取当前的属性值
        var cur = parseInt(getComputedStyle(dom)[prop]);
        // 记录步长
        // var speed = 10;
        var speed = (target - cur) / 10;
        // 步长在运算过程中,产生小数点 当步长为0.3时 需要取值为1 (向上取整); 当步长为-0.4 ,需要为-1(向下取整)
        // 让步长接近等于 1 或者 等于-1 
        speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

        // 判断当前属性值是否达到目标位置 
        if (cur == target) {
            console.log("当前属性值: " + cur);
            clearInterval(dom.timer);
            // 是否符合条件
            if (typeof callback == "function") {
                // 调用回调函数
                callback();
            }
            return;
        }
        // 设置dom的样式
        dom.style[prop] = cur + speed + "px";
    }, 30)

    // clearInterval(dom.colors);
    // dom.colors = setInterval(function () {
    //     var r=Math.floor(Math.random()*256);
    //     var g=Math.floor(Math.random()*256);
    //     var b=Math.floor(Math.random()*256);
    //     dom.style["background"] = "rgb("+r+","+g+","+b+")";
    // } , 300) 
}
